<?php
/*
###########################################################################
#Esta obra es distribuida bajo los términos de la licencia GPL Versión 3.0#
###########################################################################
*/
class Novedades_model extends CI_Model 
{
////////////////////////////////////////////////////////////
function __construct()
{        
	parent::__construct();
	$this->load->database();
}
////////////////////////////////////////////////////////////
function obtenerNovedades($d)
{
	if($d['estado'] != 'T'){
		$this->db->where('adm_novedades.estado',$d['estado']);	
	}
	
	if($d['entidad'] != 'Todos'){
		$this->db->where('adm_novedades.tipo_entidad',$d['entidad']);	
	}
	
	$this->db->select('adm_conceptos.descripcion,
	adm_novedades.estado,
	adm_novedades.tipo,
	adm_novedades.valor,
	adm_novedades.id_entidad,
	adm_novedades.tipo_entidad,
	adm_novedades.fecha_creacion,
	adm_novedades.fecha_inicio,
	adm_novedades.fecha_fin,
	adm_novedades.id_novedad');
	$this->db->from('adm_novedades');
	$this->db->join('adm_conceptos','adm_novedades.id_concepto = adm_conceptos.id_concepto');
	$this->db->order_by('adm_novedades.fecha_creacion, adm_conceptos.descripcion','desc');
	$result = $this->db->get();
	$num = $result -> num_rows();
	if($num == 0){
		return $num;}
	$res = $result -> result_array();
	return  $res;	
}
///////////////////////////////////////////////////////////
function obtenerConceptos()
{
	$this->db->order_by('descripcion','asc');
	$result = $this->db->get('adm_conceptos');
	$num = $result -> num_rows();
	if($num == 0){
		return $num;}
	$res = $result -> result_array();
	return  $res;
}
///////////////////////////////////////////////////////////
function obtenerEstudiantes()
{
	$this->db->order_by('nombre','asc');
	$result = $this->db->get('core_estudiante');
	$num = $result -> num_rows();
	if($num == 0){
		return $num;}
	$res = $result -> result_array();
	return  $res;
}
///////////////////////////////////////////////////////////
function obtenerGrados()
{
	$this->db->order_by('grado','asc');
	$result = $this->db->get('adm_grados');
	$num = $result -> num_rows();
	if($num == 0){
		return $num;}
	$res = $result -> result_array();
	return  $res;	
}
///////////////////////////////////////////////////////////
function crear_novedadBD($d)
{
	$insert = array(
		'id_concepto' => $d['id_concepto'],
		'estado' => $d['estado'],
		'tipo' => $d['tipo'],
		'valor' => $d['valor'],
		'periodo' => $d['periodo'],
		'tipo_entidad' => $d['tipo_entidad'],
		'id_entidad' => $d['id_entidad'],
		'fecha_inicio' => $d['fecha_inicio'],
		'fecha_fin' => $d['fecha_fin'],
		'fecha_creacion' => date('Y-m-d H:i:s'),
		'fecha_actualizacion' => date('Y-m-d H:i:s'),
		'id_usuario' => $this->session->userdata('id_usuario'));
	$this->db->insert('adm_novedades',$insert);
	return $this->db->insert_id();
}
///////////////////////////////////////////////////////////
function obtenerNovedad($id_novedad)
{
	$this->db->where('id_novedad',$id_novedad);
	$result = $this->db->get('adm_novedades');
	$num = $result -> num_rows();
	if($num == 0){
		return $num;}
	return $result->row_array();
}
///////////////////////////////////////////////////////////
function editar_novedadBD($d)
{
	$update = array(
		'id_concepto' => $d['id_concepto'],
		'estado' => $d['estado'],
		'tipo' => $d['tipo'],
		'valor' => $d['valor'],
		'periodo' => $d['periodo'],
		'tipo_entidad' => $d['tipo_entidad'],
		'id_entidad' => $d['id_entidad'],
		'fecha_inicio' => $d['fecha_inicio'],
		'fecha_fin' => $d['fecha_fin'],
		'fecha_actualizacion' => date('Y-m-d H:i:s'),
		'id_usuario' => $this->session->userdata('id_usuario'));
	$this->db->where('id_novedad',$d['id_novedad']);	
	$this->db->update('adm_novedades',$update);	
}
///////////////////////////////////////////////////////////
function obtenerGrado($id_grado)
{
 $this->db->where('id_grado',$id_grado);
	$result = $this->db->get('adm_grados');
	$num = $result -> num_rows();
	if($num == 0){
		return $num;}
	return $result->row_array();	
}
///////////////////////////////////////////////////////////
function asignar_novedad_estudiante($id_estudiante,$id_novedad)
{
	$insert = array('id_estudiante' => $id_estudiante, 'id_novedad' => $id_novedad);
	$this->db->insert('adm_novedad_estudiante',$insert);	
}
///////////////////////////////////////////////////////////
function asignar_novedad_grado($id_grado,$id_novedad)
{
	$this->db->where('id_grado',$id_grado);
	$result = $this->db->get('adm_estudiante_grado');
	$num = $result -> num_rows();
	if($num != 0)
	{
		$res = $result->result_array();	
		foreach($res as $d)
		{
			$insert = array('id_estudiante' => $d['id_estudiante'], 'id_novedad' => $id_novedad);
			$this->db->insert('adm_novedad_estudiante',$insert);	
		}
	}
}
///////////////////////////////////////////////////////////
function asignar_novedad_todos($id_novedad)
{
	$this->db->where('estado','Activo');
	$result = $this->db->get('core_estudiante');
	$num = $result -> num_rows();
	if($num != 0)
	{
		$res = $result->result_array();	
		foreach($res as $d)
		{
			$insert = array('id_estudiante' => $d['id_estudiante'], 'id_novedad' => $id_novedad);
			$this->db->insert('adm_novedad_estudiante',$insert);	
		}
	}	
}
///////////////////////////////////////////////////////////
function eliminar_asignacion_novedad($id_novedad)
{
	$this->db->where('id_novedad',$id_novedad);
	$this->db->delete('adm_novedad_estudiante');	
}
///////////////////////////////////////////////////////////
function ontenerEstudiantesActivos($d)
{
	$this->db->SELECT("
  concat(core_tercero.primer_nombre, ' ', core_tercero.segundo_nombre, ' ', core_tercero.primer_apellido, ' ', core_tercero.segundo_apellido) AS estudiante,
  core_tercero.fecha_nacimiento,
  adm_grados.grado,
  adm_grados.jornada,
  adm_grados.id_grado,
  core_estudiante.id_estudiante,
  core_estudiante.estado,
  core_tercero.numero_documento,
  core_tipo_documentos.tipo_documento",false);
$this->db->FROM("core_tercero");
$this->db->JOIN('core_estudiante','core_tercero.id_tercero = core_estudiante.id_tercero');
$this->db->JOIN('adm_estudiante_grado','core_estudiante.id_estudiante = adm_estudiante_grado.id_estudiante');
$this->db->JOIN('adm_grados','adm_estudiante_grado.id_grado = adm_grados.id_grado');
$this->db->JOIN('core_tipo_documentos','core_tercero.id_tipo_documento = core_tipo_documentos.id_tipo_documento');
$this->db->ORDER_BY("estudiante",'asc');

if($d['id_grado'] != 0)
 $this->db->where('adm_grados.id_grado',$d['id_grado']);
 
if($d['jornada'] == 'Mañana' || $d['jornada'] == 'Tarde')
 $this->db->where('adm_grados.jornada',$d['jornada']);

  	$res = $this->db->get();
  	$num = $res->num_rows();
	if($num == 0)
	{
		return $num;
	}
	
  	return $res->result_array();
}
///////////////////////////////////////////////////////////
function obtenerGradoEstudiante($id_estudiante)
{
	$this->db->SELECT('adm_grados.grado');
	$this->db->FROM('adm_estudiante_grado');
	$this->db->JOIN('adm_grados','adm_estudiante_grado.id_grado = adm_grados.id_grado');
	$this->db->WHERE('adm_estudiante_grado.id_estudiante',$id_estudiante);
	$res = $this->db->get();
	$result = $res->row_array();
	return $result['grado'];
}
///////////////////////////////////////////////////////////
function obtenerNovedadesEstudiante($id_estudiante)
{
	$this->db->SELECT('  adm_conceptos.descripcion,
  adm_novedades.estado,
  adm_novedades.tipo,
  adm_novedades.valor,
  adm_novedades.periodo,
  adm_novedades.tipo_entidad,
  adm_novedades.fecha_inicio,
  adm_novedades.fecha_fin');
	$this->db->FROM('adm_novedad_estudiante');
	$this->db->JOIN('adm_novedades','adm_novedad_estudiante.id_novedad = adm_novedades.id_novedad');
	$this->db->JOIN('adm_conceptos','adm_novedades.id_concepto = adm_conceptos.id_concepto');
	$this->db->WHERE('adm_novedad_estudiante.id_estudiante',$id_estudiante);
	$res = $this->db->get();
	$num = $res->num_rows();
	if($num == 0)
	{
		return $num;
	}
	
	return $res->result_array();	
}
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
}